home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics Plus
/
Graphics Plus.iso
/
general
/
modelers
/
geomview
/
sgi.lha
/
Geomview
/
CHANGES
next >
Wrap
Text File
|
1993-11-09
|
25KB
|
692 lines
1.4.1 November 9, 1993
Distribution includes both NeXT and SGI versions.
New modules included:
crayola (SGI and NeXT) coloring program
warp (SGI and NeXT) interactive object warping
ndviewer (SGI only) N-dimensional viewer (currently only 4D objects)
cplxview (SGI only) graphs of complex functions
clipboard (SGI only) cut, copy and paste objects
drawbdy (SGI and NeXT) find and draw the boundary of an object
flythrough (SGI only) Not Knot hyperbolic
gvclock (SGI and NeXT) 3D clock, demonstrates real-time motion
maniview (SGI only) 3-manifold viewer
trigrp (SGI only) explore triangle symmetry groups
plus source for all the existing modules.
Documentation:
New manual! doc/geomview.tex (TeX version) and doc/geomview-*
(GNU texinfo version) explain Geomview in far more detail than
previous documentation. They strictly describe Geomview on the Iris,
but much also applies to the Next.
Configuration:
SITE makefile variable selects one of several site-specific
configuration settings, namely installation directories for binaries
(BINDIR), manual pages (MANDIR), and Mathematica scripts
(MMAPACKAGEDIR). Settings stored in
makefiles/mk.site.{default,private,public}. ``make instprivate''
and ``make instpublic'' are ``make install'' variants that use the
latter two.
Prevent 'make' from failing if C++ compiler isn't present; just don't
compile the C++ programs.
Geomview, General:
Extend implementation of conformal transformations.
Conformal mode, which had been allowed only in hyperbolic space,
is now also meaningful in Euclidean space, where it amounts to
inversion in the unit sphere, and spherical space, where it's
a stereographic projection from the 3-sphere into Euclidean 3-space.
New command (set-conformal-refine).
Read both ~/.geomview and ./.geomview, in that order.
New -noinit command-line option suppress reading all .geomview files.
Implement Olaf Holt's design for N-D viewing by projection.
New commands (ND-axes) (ND-xform) (ND-color).
(Invoked by ndviewer and cplxview modules.)
Keep track correctly of which window the mouse is in.
Had sometimes gotten confused if a window was uncovered.
Allow disabling "override" status. New Override button & (ap-override)
command selects whether appearance controls should suppress
objects' own settings, or just provide default values.
New (camera-prop) command allows setting the object used to show cameras
when "Draw Other Cameras" selected (e.g. see file "camera-frustum").
Mention Next variants to mouse usage (alt + left = middle, etc.)
in Help message.
SGI Interface:
Add transparency controls to materials panel.
(No transparency supported on NeXT.)
Color picker has numeric RGB input.
Buttons for motion controls (Obscure) and Override control (Appearance).
Add focal length and software shading controls to camera panel.
"vl" keyboard shortcut sets camera focal length.
Limit picked projected Z values to -1 .. +1, so we can only pick things
that lie between the clipping planes!
Motions:
Really stop motions of objects when we reset them.
Controllable inertia, constrained motion, own-coordinate-frame motion
('ui', 'uc', 'uo' key sequences).
Make more use of the ``focal plane''. Look At button sets focal distance.
Shift-rightmouse-click selects a focal point; also becomes center of
rotation. Translations are interpreted as at the focal plane,
so objects at the focal distance should move with the mouse.
Use ordinary, no longer scaled, translations.
Let the scaling be based on the frame camera's focal length,
set e.g. by Look or etc. operations.
Pay attention to window aspect ratio and camera focal length when moving.
Add more parameters to (look-encompass-size ...) indicating desired margins
for setting near and far clipping planes.
Geomview, Graphics:
Pay proper attention to override bits in Next and RenderMan drawing
libraries; ensures that objects will be the color chosen on the panel.
Position SGI windows in exactly the specified place.
Draw degenerate polylist (OFF) objects correctly for Next and RenderMan:
use points and lines where they have 1- or 2-vertex "faces".
Correctly handle lights whose positions don't lie within the model space
(as the default lights are) in hyperbolic & spherical shaders.
Geomview, Saving:
Save window positions when saving cameras in command form.
Use a unique name when saving geom objects as commands; avoids the problem
of saving as object X and having it automatically renamed X<n> in case
of conflict, making further commands ineffective.
Geomview, RenderMan:
Include both NeXT and SGI (etc) standard shader directories; we don't
know where .rib files will be rendered.
RenderMan saving no longer enforces adding four-digit numeric suffix.
Geomview, Communications:
GCL command files containing multiple commands now work sensibly:
geomview always reads entire contents, one command per display loop.
(Use (progn ... ) to swallow all at once.)
emodule-run command: all e-module directories are appended to $PATH
when the program is started, so emodule-run may mention module programs
without requiring full pathnames.
Both SGI and NeXT versions can read from either named pipes or UNIX-domain
sockets; -M[gc][sp] command-line option specifies data type and
communications mechanism.
Software shading now implements fog; density set by lighting attenconst.
External-module programs are invoked by their full path names when possible.
Allow L)ooking at cameras.
Allow reading either geometry or commands from either UNIX-domain sockets
or named pipes, using '-M[gc][sp] name' command-line option.
(camera-prop) command specifies how to draw other cameras.
(cursor) command (for SGI) controls GL cursor and/or loads from .pbm file.
(setenv) command allows setting environment of e.g. external modules.
Assorted bug fixes.
Utility programs:
New programs ucdtooff, anytoucd convert AVS "UCD" format to/from OOGL.
Anytooff accepts (multiple) arguments, and combines their contents.
Mathematica to OOGL software:
Improve installation document; be more robust about locating math2oogl,
geomview, etc. executables, and warning the user if we can't.
Allow specifying user name when displaying on remote host.
Don't fail if graphics contain complex values (just plot real part).
New BezierPlot[] in BezierPlot.m allows plotting Bezier patches directly.
FORMS:
Include FORMS-2.0-PATCHES, all differences from FORMS 2.0 release.
Change summary:
FORMS Library:
New color-picker module.
New fouraxis module, derived from positioner.c.
Allows specifying a direction in 4-space.
Be more intelligent about frozen forms: only redraw if
some object changed while the form was frozen.
Use the sign bit of the form->frozen field to tell.
Add '@I' prefix to embed FL_ICON_STYLE (symbol font) items in a browser.
Tie mouse (x,y) position to all mouse clicks. Use this to ensure that we
always register a mouse click in its correct position, not the place where
the mouse lies when we get a chance to read it!
Click position is fed to the next caller to ask for the mouse position
after a click; later calls read the live mouse position. Seems to work.
Cache stuff as much as possible. Don't load fonts or read color map unless
(until) we actually need them. Might allow programs to start up at
a reasonable speed, since the SGI font manager is slower in 4.0.x than 3.3.
Handle Icon font usefully -- use the Symbol font, and allow it to be scaled.
Accommodate new font-sizing rule in IRIX 4.0.5: fonts are now
scaled to constant real size rather than constant size in pixels.
On IRIX 4.0.5 or greater, we discover the error this will cause and
scale all font sizes by its reciprocal (!).
Optimize drawing bitmaps. Cache fl_getmcolor() values; use pointers to
scan input & output pixel arrays. ~sixfold speedup. Save 64K data size.
FORMS designer:
Add fdesign2c, batch-mode translator from *.fd to *.{c,h}.
Added colorwheel and fouraxis objects.
1.3.2 March 1, 1993
Fix RenderMan file saving bug.
New OOGL classes: discrete groups and spheres.
Underlying support for stereo added.
Fix replace world bug.
Rotate about CENTERID, not the target geom, in orbit mode.
Add slow-motion controls (invoked with Shift key).
Scaled translation procedures now take world size into account,
not distance from target object. Use this mode in fly and orbit.
Add "emodule-defined" command: returns the given emodule's
shell command (& tests whether any such is defined).
Add cull-backface as a command.
1.3.1 January 31, 1993
IMPORTANT: the "pick" command has changed completely and is
incompatible with previous versions. If you have an external
module that uses the "pick" command you should change it to
use the new "interest" command instead. Send us email
(software@geom.umn.edu) if you need assistance.
Change the way system-dependent information is specified;
everything is now specified in the "geomview" shell script
which sets environment variables and then invokes the binary.
Nothing that is system-dependent (e.g. pathnames) are compiled
in; not even default values.
External modules now appear in alphabetical order in the
applications browser. Geomview finds out about them via files
named .geomview-* in the modules directory, rather than in the
system-wide .geomview file. So there is no need to edit the
system-wide .geomview when installing a module now. See
man/cat1/geomview.1 for more information on how to install a
module.
The space browser is now on the main panel.
Different models of hyperbolic space are now available: virtual
(the insider's view of the projective model), projective (outsider's
view), and conformal-ball. The conformal-ball model is only partially
implemented; it works only for polylist (OFF) objects and only in
constant-color and smooth-shading modes (not in flat-shading mode).
The model is per-camera attribute and is settable via a browser in
the camera panel.
The camera, when drawn, now fits inside the unit sphere.
Fixed RenderMan saving bug: file is now opened properly.
"Fly" mode now uses scaled z-translation.
A color wheel replaces the RGB sliders for picking colors.
Several "look" functions added for positioning a camera to look at
an object. "Look At [L]" button added to tools panel positions
the current camera to place the target object nicely in the view.
Look At and look-encompass compute and use a bounding sphere for the
object rather than using its bounding box.
Add "Orbit [o]" mode. Like fly mode, but rotates the camera
about the center of the selected object.
Better error reporting; syntax errors in input files are now reported
with messages including the input line where the error was detected.
Picking code improved; picking now works in more cases than before.
Still broken if any part of any object is behind the camera plane.
Null geoms now allowed, denoted { }.
Added "interest" command which allows external modules to
express interest in a command; the module is then notified
whenever geomview executes the command. Useful for modules
that need to know when things in geomview happen.
Reduced sensitivity to accidental mouse twitches -- it's now
easier to make an object stop moving.
Motion now proceeds wrt real elapsed time. transform-incr
allows specifying rate of motion.
Control over when commands are executed: sleep-for, sleep-until,
clock, set-clock, time-interest commands.
A "load" command simplifies reading files.
Added stereo viewing support: hardware, crosseyed, red/cyan modes.
(An external module is needed to control it.)
Lights may be specified (from command language only) in camera or
object coordinates, as well as world coordinates. Allows depth cueing.
"emodule-transmit" command allows sending messages to running modules.
"real-id" gives an object's canonical name.
"all" gives a list of all items (geometry, emodules, ...) of a kind.
"soft-shader" selects whether to use new software shading.
New "v~" keyboard shortcut does, too.
"echo" can be used to print results of evaluating lisp expressions.
Now reads all commands from command files; used to sometimes read
only the first command.
Modules may continue sending messages after being killed.
Modules receive SIGHUP signal when killed.
1.2.3 October 22, 1992
Geomview:
Add outside-hyperbolic space mode ("mo" keyboard shortcut).
"mh" still selects a view inside hyperbolic space.
A "spherical" language keyword ``(space spherical)'' is now recognized.
Implementation of spherical motion is improved.
Do a better job of adjusting camera setup when switching spaces.
The first directory in the "Files" browser is initially selected,
so its files are visible when the panel is first displayed.
(This directory is the first one given to "load-path", by default ".").
A new "Vects" button and "aV" keyboard shortcut select whether
vect objects (lines and points) are visible; they're now controlled
separately from polygon edges.
Make hyperbolic translation behave better when the center-of-motion
is literally "target" (the default); such translations are now along
an axis through the origin, avoiding spurious rotation.
If "center" is anything else, it's taken at face value.
Use color to indicate status of Appearance-panel buttons:
highlighted yellow when true, gray when false.
Buttons lie flat on the panel if they've never been changed,
and depressed if they have been. (The "Revert [ax]" button restores
the never-set status, and shows objects as they naturally appear.)
Add half-baked transparency: "aT" keyboard sequence.
Fix supersensitive behavior of Applications browser;
running modules now appear in boldface red.
Add "-nopanels" command-line option.
trigrp:
Switch between euclidean and hyperbolic space when changing groups.
FORMS library:
Adapt to new IRIX 4.0.5 font manager's sizing behavior.
Since FORMS panels are fixed in pixel units, we rescale fonts
to be constant pixel size rather than 4.0.5's constant real size.
[Still works on older systems.]
External modules in general:
A list of all external-module definitions is now kept in
"data/.geomview-modules"; it's automatically updated when
new modules are installed in the geomview binary directory.
It's also safe to edit this file by hand.
General distribution:
Distributed files are now writable by the owner, to make it
easier to apply upgrades. Once this 1.2.3 distribution package
is installed, it should be possible to install future distributions
without being the superuser, since "tar" will be able to overwrite
the old files.
1.2.2 October 3, 1992
Geomview:
Repaired ANSI C incompatibilities -- this version compiles
under Irix 4.0.4.
Several memory leaks were fixed.
Don't corrupt memory when new-geometry command is used.
Avoid crashing when a camera is deleted.
Bezier patch dicing level is now properly recorded and
applied to newly loaded Bezier objects.
Bezier's saved in RenderMan format are written as true patches,
not polygonal meshes. Texture coordinates also saved for STBBP's.
Don't lose commands sent by external modules just before they die.
Don't continuously redraw the display when camera drawing is on.
Make hyperbolic translation, which was approximately correct, exact.
Repair "position", "position-at", "position-toward" commands.
Fix -b (background color) command-line option.
Added performance metering (control-T keyboard character).
Libraries:
New libformsx.a library has some handy FORMS-related functions:
enabling/disabling objects, reading numbers from input fields, etc.
Maximum Bezier degree is now 12 rather than 6.
Bounding boxes of Bezier patches now at least fairly meaningful.
Avoid crashing when encountering erroneous OFF files.
Invert the sense of QUAD normals to be consistent with other objects.
Makefile configuration:
Removed "make lib" warning in multiple-source library directories.
Ensured that the FORMS library is installed by the time it's needed.
1.2.1 September 17, 1992
Fixed a problem with src/lib/forms/Makefile which prevented
successful compilation on systems that don't already have the
FORMS library installed.
1.2.1 is not really a new release --- it's just a re-packing
of the tar file with a new src/lib/forms/Makefile.
[ Details of the problem: modified src/lib/forms/Makefile so
that it installs libforms.a in bin/sgi upon "make all"
rather than just "make install". This is now consistent
with the way the other .a files are installed, and fixes a
problem which prevented successful makes on systems that
don't already have FORMS installed. In previous releases
libforms.a was installed by geomview/gl/O.sgi/Makefile
before it attempted to link geomview; in 1.2, however, the
"example" program links with libforms.a but doesn't install
it first. Since "e" comes before "g", "example" is compiled
by "make all" before geomview, with the result that the
compilation fails since libforms.a is not yet in place.
I created geomview-1.2.1.tar.Z by unpacking the 1.2 tar file
into a fresh dir, replacing the files ./src/lib/forms/Makefile
and ./CHANGES (this file), and re-packing. ]
1.2 September 4, 1992
Panels
------
New iconic tool panel replaces parts of old main panel.
"Zoom" now changes camera field of view: add "scale" to change size of
geometry. (Can also change apparent size by z-translating object or
camera.)
Reorganized panels. Camera panel has camera-related things, appearance
panel has geometry-related things. Obscure panel now only has
normalization and space things.
Add save panel. Now through user interface can save: Renderman or .sgi
snapshot, text file of commands, geometry, cameras, transforms,
windows for any (or all) objects, and position information for all panels.
Appearance controls now override all lower levels (before if lower
level had appearance of its own it was left unchanged). Added revert
button to appearance panel.
New "?" button on main panel same as "?" keyboard shortcut (dumps
keyboard shortcut summary to tty).
Add "CSmooth" mode to shading browser of appearance panel.
This is a constant-shaded style (shading depends only on vertex colors,
not on lighting) but with smooth interpolation where colors vary across
a face.
Keyboard Shortcuts
------------------
Lines-closer shortcut "ac" now also "vc" since it's a per-camera
option at the moment.
Add backface culling (only accessible through keyboard toggle "vb").
"g" keyboard prefix now picks world not most recently picked geometry.
"." new prefix for target object, i.e. "self".
"P*" keyboard shortcut to bring up panels.
"[se|sh]" shortcut changed to "[me|mh|ms]". (m for metric since s for
space got taken over by "scale").
"TV" toggles NTSC video mode.
"vs" toggles single vs. double-buffered windows.
Commands
-------------
Add complete help messages for all command language functions and new
commands "?" and "??".
The syntax of the write command has changed. See geomview.5.
Added position, position-at, position-toward commands.
Added rawevent, winenter, freeze commands (intended for development
not for general use.)
External module command name changes:
emodule-define is the new name for ui-emotion-program.
emodule-start is the new name for ui-emotion-run.
emodule-run is the new name for "|".
Eliminated ui-emotion-modename: awkward event-shipping to external
modules. More useful access to functionality that is presently hidden
internally is under development now.
Motion
-------
Totally new motion paradigm. Most old functions are mimicked. New
functionality added. Can now specify a center of motion (orbit mode
used to be camera around center of world: now can be any object
orbiting any other object. See "ui-center" command.). Can specify
rotations and translations in x, y, z instead of a raw 4x4 matrix (see
"transform*" commands).
Fly mode changed yet again: now left mouse rotates camera, middle
mouse flies camera forward/backward.
Flight Sim mode eliminated.
External Modules
----------------
Distributing external modules separately from geomview proper, except
for a few examples.
Added example external module with accompanying tutorial document.
Improved handling of external modules; can now run multiple concurrent
modules and can finally terminate them. See command language changes above.
External modules MUST now run in the foreground, lest geomview think they've
died. FORMS/GL modules need to call foreground(). See emodule-run
documentation in geomview(5).
Do a better job of killing off external modules when geomview exits
and suspending them when geomview is suspended.
Can now invoke external modules from geomview's command line and can
pass (globbed) parameters through to their command lines.
Geomview general
----------------
Better Renderman support, especially for automated generation of movie
frames. Can specify whether to render directly to framebuffer or to a
tiff disk file. Can give file prefix which is then autoincremented on
each Renderman snapshot. Tiff file name is constructed from rib file
name (used to always be called "image.tiff").
Snapshot pops window to prevent obscuration, and redraws in singlebuffered
mode to minimize dithering artifacts, and to avoid a "scrsave" bug which
sometimes caused the previous image to be saved.
In hyperbolic mode the camera starts out inside the sphere instead of
outside the sphere, and the bounding sphere is not automatically drawn.
Add spherical space mode.
Add new special id's: self, universe, primitive (for coordinate systems).
Pick data can be written in any of several coordinate systems.
Make picking work on views with dedicated scenes.
Better camera geometry for default camera drawn. (Development feature
that may change in the future: uses "cam.oogl" file instead if it
exists.)
Number new objects according to their id, so camera c2 == "Camera<2>",
etc.
OOGL
----
Better error detection and recovery in OOGL loading rountines.
Added method extension mechanism for geom objects.
Various internal reorganizations --- renaming variables, etc.
Added support for variable-length arrays (vvec's).
Added geom transform methods.
Print a useful error message if a camera file can't be found.
Fixed binary mesh loading bug; binary meshes now load properly.
Fixed bug which caused sometimes-wrong screen z computation associated
with picking.
Fixed picking of closed VECT object.
Don't draw VECTs when edge drawing is off.
Objects loaded from files are no longer tied to the contents of those files;
the sequence "load object, change file, load other object from same file"
now yields two distinct objects, not two identical copies of the new version.
General
-------
Made source code more ANSI-compliant.
Many optimizations; code runs faster.
Fixed bugs assocaited with communication via pipes; close them
Fixed bugs associated with reference counting and memory
allocation and freeing.
New configuration setup; more robust
Overhaul Makefile structure; rely more on common Makefiles
referenced via "include"
Completely new lisp interpreter; much more general and easier to
use than previous version. See the man page man/cat3/lisp.3 for
details.
Fixed various minor bugs.
Known problems:
---------------
Spherical mode doesn't work on VGXes.
Zoom and Scale have no inertia.
Constrained motion (to X or Y axis) no longer works.
Sometimes core dumps on bad input files.
-------------------------------------------------------------------------------
1.1 May 27 1992
Slightly better documentation; lang.doc renamed geomview.5.
Four more sample external modules added.
Control panel settings override objects' own appearances.
Object vertex/edge/face picking (rightmouse), w/command-language feedback.
New flight-simulator motion mode.
More state-saving operations, 'write' and 'snapshot' language commands.
Command-language control over windows & panels (placement, visibility).
Can save scenes in RenderMan .rib format.
Many bug fixes including:
Memory should now be freed properly when objects are deleted.
Code now compiles under IRIX 4.0.1 ANSI C.
Input panels now accept input properly under 4.0 (input focus bug fixed).
Known problems:
IRIX 4.0 remote display (DGL) doesn't work; geomview must run on the
machine where it's displaying.
-------------------------------------------------------------------------------
1.0.1 February 25 1992:
Miscellaneous minor bug fixes
Slightly better documentation
-------------------------------------------------------------------------------
1.0 January 31 1992
initial release